JacquesLucke / animation_nodes

Node based visual scripting system designed for motion graphics in Blender.
Other
2.28k stars 342 forks source link

New node: Midi input node #69

Closed wardrums closed 9 years ago

wardrums commented 9 years ago

Hi Jacques. i have been working on a similar animation node systems, and i found yours today.

so im in the process of migrating my nodes over to your system, as it is way more developed than mine.

First up. Midi_node.

It allows to take a Midi File http://en.wikipedia.org/wiki/MIDI and create animation from the data. it will be useful for syncing up animation to music, something im currently working on.

Nikos-Prinios commented 9 years ago

Great news ! Also useful for those who use blender for interactive installations and robotic stuff. I was considering building a simple socket node as a gateway to communicate with anything outside blender (like arduino). Do you happen to have one like this ?

LeonCheung commented 9 years ago

Yeah, it reminds me something like the great Animusic series. I've been dreaming to learn to creating such addon, now it would be amazing to see it being done here. :D

wardrums commented 9 years ago

My node is just for reading midi files, not a realtime feed.

i have seen in FLOW https://github.com/zeffii/FLOW, there is an OSC node, which would allow for communication. but it does require an external, pyosc.

i dont think animation-nodes would allow for realtime input however, as it only updates on frame changes.

the game engine is suited better for real-time interactive stuff.

JacquesLucke commented 9 years ago

this addon doesn't only update on frame changes performance

zeffii commented 9 years ago

@wardrums FLOW's the dependency on pythonosc is not so hot, agreed. We could present a good case to blender-devs to include some form of OSC support in the bundled python distribution, that way many more addons could benefit from it and the game engine.

pythonosc is unlicensed 'do what you want with it' , it would be my pick.. but there are other easier modules out there

JacquesLucke commented 9 years ago

To be honest, I don't really know what this is for...

zeffii commented 9 years ago

OSC is a protocol, used for communication between tcp or udp. It is considered the successor of MIDI. It can be used to send messages between things that listen for such messages. Software, Hardware, locally to the machine, or the other side of the planet

The point of implementing some form of OSC is that you can control parameters of a synthesizer or robot ..or light system..whatever if it understands OSC messages. It's accurate and time-precise (depending on the implementation). Those of us who like to make our own sounds can animate visuals and the values of a synth to give the illusion that they are connected.

http://youtu.be/ugnSmDu4a3c?t=36s (Ritchie Hawtin)

JacquesLucke commented 9 years ago

okay sounds good. I think I'm not the right person to decide which module is best for that as I no experience with it... Did you already use this pythonosc module somewhere in FLOW?

zeffii commented 9 years ago

yep. grep the repo. I'm sending OSC messages to SuperCollider.

setup for broadcast: https://github.com/zeffii/SoundPetal/blob/master/utils/osc_panel.py#L82-L89

sending specific osc message: https://github.com/zeffii/SoundPetal/blob/master/utils/osc_panel.py#L120-L131

SuperCollider implements its own listeners for these addresses. See for yourself https://github.com/zeffii/SoundPetal/blob/master/sc_patches/server/server_test_combined.scd

It's very loose at the moment, but perhaps gives the general idea.

JacquesLucke commented 9 years ago

hm. I got kind of an idea, but still don't know much about it, or what I can do with this now...