This page has three aims: to gather links to other sites which contain comprehensive tutorials, to link to a number of resources created to complement learning and teaching, and to link you to the communities where assistance and alternative viewpoints may be found. As all of the software I will reference is FLOSS (Free, Libre, Open-Source Software) there is an ecosystem of collaboration that exists within the arts that can help you realize your goals.

Primary Websites for Software and Hardware Platforms is the website for the Processing language. This is an extremely powerful, visual media based language. With it you can create visual media that is interactive, vector, bitmap or video based and running in real-time for performance or installation. Many extensions (libraries) exist for the language created by third-party developers, for web access, communication with other software platforms, sound, hardware-enhanced 3D graphics, multiple screens / projectors and a vast amount of other possibilities. It can be linked with other software, and will run on any standard computer operating system, on various mobile devices and as a javascript library in web browsers.
How to get started?
Firstly, navigate to
...and follow Daniel Schiffman's tutorial there. It doesn't matter if you have not done any coding before - this will introduce you to the basics of how Processing works, and how to understand computer code in the context of visual graphics. Then, go to to download the software and and get more of an idea of the graphics potential of Processing, and different issues and subject areas. Explore and create, and there is also a forum where you can share and interrogate with the community.
Finally, I've made a page of my own. It's a real crash-course and doesn't uncover everything (which would be impossible as the software is so flexible) but it has many downloadable scripts that work.
You'll need a webcam for some of the scketches to work.
Finally, when in Processing, In the File menu click on Examples where you will find a large number of sketches.

While Processing does have support for sound playback (through the Minim library, or in conjunction with video) it is often a better idea to use a programming environment that is designed specifically for audio. Pure Data (Pd) is just such a system, and if you find yourself drawn to Pd rather than Processing, Pd supports video and graphics as well (through the GEM library)
The community site is where you can download the software, learn about Pd and find links.
Some great tutorials can be found at
Again I have a site with links and resources:

Finally we will look at Arduino. Arduino is a physical interface between a computing device and the physical world. It can operate independently, driving motors, switches, lights, and sensing space, light, temperature direction, acceleration, RFID chips and more.
Arduino boards cost little, and can be programmed either independently or to run with a computer, connecting to Processing, Pure Data and other software environments.
The main website for Arduino is at to learn about Arduino boards, extensions and to download the software to program the boards. There are many starter kits available from many suppliers. Another site created for this course, similar to those shown above is where you will find examples, and links to related sites.

Dr Edward Kelly, 2014