diff bin/effecteval @ 1933:c81f86f3d65a

effecteval is mostly obsolete, but now it can at least show a list of effects used in a song (which seq can too) Ignore-this: c24e4c1c3ccd839e79b1b2fb19ee996a
author Drew Perttula <drewp@bigasterisk.com>
date Sun, 02 Jun 2019 11:37:14 +0000
parents 1a7e5b07bf17
children f29e26811206
line wrap: on
line diff
--- a/bin/effecteval	Sun Jun 02 11:36:13 2019 +0000
+++ b/bin/effecteval	Sun Jun 02 11:37:14 2019 +0000
@@ -7,8 +7,6 @@
 import sys, optparse, logging, json, itertools
 from rdflib import URIRef, Literal
 
-sys.path.append('/usr/lib/pymodules/python2.7/')  # for numpy, on rpi
-sys.path.append('/usr/lib/python2.7/dist-packages')  # For numpy
 from light9 import networking, showconfig
 from light9.effecteval.effect import EffectNode
 from light9.effect.edit import getMusicStatus, songNotePatch
@@ -103,11 +101,20 @@
         songs = list(self.graph.items(playlist))
         out = []
         for s in songs:
-            out.append({'uri': s, 'label': self.graph.label(s)})
-            out[-1]['effects'] = [{
-                'uri': uri,
-                'label': self.graph.label(uri)
-            } for uri in sorted(self.graph.objects(s, L9['effect']))]
+            out.append({'uri': s, 'label': self.graph.label(s), 'effects': []})
+            seen = set()
+            for n in self.graph.objects(s, L9['note']):
+                for uri in self.graph.objects(n, L9['effectClass']):
+                    if uri in seen:
+                        continue
+                    seen.add(uri)
+                    out[-1]['effects'].append({
+                        'uri': uri,
+                        'label': self.graph.label(uri)
+                    })
+            out[-1]['effects'].sort(key=lambda e: e['uri'])
+                    
+                    
         self.sendMessage({'songs': out})