[nama] Re: Effects indexing code is dodgy

  • From: "S. Massy" <lists@xxxxxxxxxxxx>
  • To: nama@xxxxxxxxxxxxx
  • Date: Sat, 7 Jul 2012 13:24:50 -0400

On Sat, Jul 07, 2012 at 12:30:02PM -0400, S. Massy wrote:
> On Sat, Jul 07, 2012 at 11:22:52AM -0400, S. Massy wrote:
> > Hello,
> > Julien has mentioned it before, but I had not experienced it until now.
> > I removed the lv2 version of the swh plugins (installed for testing
> > purposes) and installed the MDA plugins (mda-lv2 on Debian) and
> > regenerated the cache. First, nama threw a couple errors, complaining
> > about invalid effects data, then ecasound appeared to crash once, and
> > then... it mysteriously worked (timing issues?). Anyway, the long and
> > the short of it is that the swh lv2 plugins are still reported as
> > present by nama and the MDA plugins aren't. Ecasound's lv2-register on
> > the other hand looks as one would expect. I may have a look at the code
> Nama never actually acquired lv2-register and was always reading its
> fake-lv2-register. As it was a dump which I had sent Joel, it of course
> worked perfectly on my system. I corrected this, however, I am still
> running into problems with nama complaining about bad data, etc.
> Debugging...
Here's a little patch to fix this and also align the preset regex with
the others. There is still a timing issue (my guess anyway) where:
sometimes cache will regenerate without problem, and then it fails the
next time around. For now, if you have problems, try regenerating a few
times. I'm also attaching a log of when things go wrong.

Cheers,
S.M.
diff --git a/src/Effects_registry.p b/src/Effects_registry.p
index 4223eec..c9acfaf 100644
--- a/src/Effects_registry.p
+++ b/src/Effects_registry.p
@@ -183,7 +183,7 @@ sub read_in_effects_data {
 
        #### LV2
 
-       my $lv2 = get_data_section('fake_lv2_register');
+       my $lv2 = eval_iam('lv2-register');
 
        # join wrapped lines
        $lv2 =~ s/\n                    # newline
@@ -244,7 +244,7 @@ sub read_in_effects_data {
                ^(\d+) # number
                \.    # dot
                \s+   # spaces+
-               (\w+) # name
+               (.+?) # name
                ,\s*  # comma spaces* 
                -(pn:\w+)    # preset_id 
                :?     # maybe colon (if parameters)

Other related posts: