Was wondering what you were working on. Haven't been looking in the testing forum.
Was the first to download .. I see it's up to 4 or 5 already while I write this.
This looks great. I haven't had much time to play around with it... a couple of things I've hit up against.
I did try a simple font repeater and driving a float value with a sound driver for the spacing... unfortunately this didn't work. (not even with a simple "frame" driver) Can you think of some reason drivers won't work as your inputs? The only message I'm getting to the console is "string".
So I thought I'd try the fcurve node to spit out my baked props off the speaker. Unfortunately I had a test file full of empties, (hooks to a curve being wiggled with far too many sound channels.) this threw the fcurve node into a frenzy line 83 in bg_node_fcurve because empties have no data
Something like this will fix it
data_obs = [o for o in context.scene.objects
if getattr(o, "data", None) is not None
and getattr(o.data, "animation_data", None)
is not None]
for ob in data_obs:
ad = ob.data.animation_data
if ad != None:
ac = ad.action
for fc in ac.fcurves:
s = "%s%s%s%s%i" % (ob.name, DATA_DELIMITER, fc.data_path, DATA_DELIMITER, fc.array_index)
Also maybe the data_path would be a better choice for the list there. Particularly for me cos I have the channels on speakers eg ["CH0"] etc.
You can check against the bl_rna of a prop to see if it is an array and needs the fc.array_index.
All that said, this is shit hot. I've been looking at drivers with nodes, but looking at this perhaps making a node to output the float might be an easier approach... be a pretty flashy looking node with 1000 channel buttons on it lol. Also I've created a dummy driver that spits out the driver locals to a var names / values dictionary . Might pick your brain on how that can be set up as a node. This could very handy.
PS a button to turn on / off the modal handlers would be handy too. It takes F8 completely out of the question.
PPS.. make that 11 downloads.. that's more than I get in a year!!!
PPPS the list comp above should prob go all the way to actions. The obs can have animation_data if they have drivers or NLA .. which will make the code throw on action being None too.