Pure Data (aka Pd) is an open source visual programming language. Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. Pd is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.
I'll be making use of this language in a project I'm taking part in. Basically, we'll be making a machine that reacts to sounds, draws shapes accordingly to them and possibly makes sounds itself. So it'll be a some sort of a musical instrument. Pd will analyze the incoming sounds and output signals used to control the machine. It's a quite complex problem but the more complicated the issue is, the more satisfaction solving it gives. :)
Here's a fragment of a simple example of the Pd "canvas", that's how the actual "code" looks like in PureData. Here we can see a simple MIDI synthesizer imitation that you can control using the computer keyboards' keys. The key object at the top, sends out a number whenever a keyboard key is pressed. Each key has a unique number. The object below is a number object, it's there only to show values of each pressed keys. The sel objects below send a signal only if they recieve the argument number. The big squares are called "bangs" and they indicate that a signal is passing through them (or can send signal themselves, when clicked on). Under them are message objects containing numbers corresponding to actual midi notes.
Apart from pd, I also learned a lot about sound itself. It's parameters, characteristics, etc. I needed to know more about it, because I had to know how to analyze it.
It's a big project and I'll most likely focus some more on it in the next semester. Right now, the current semester is about to end and I have to focus on finishing all current uni projects. I'll be making a motion tracking animation in the following days. It'll probably end up on my youtube channel so stay tuned.