Mercurial > code > home > repos > light9
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})