Creative Coding for the Raspberry Pi using the HappyBrackets Platform
A workshop at ACM Creativity and Cognition, June 27, 2017 (all-day), Singapore.
Sam Ferguson (presenter) and Ollie Bown
This workshop will introduce creative coding audio for the Raspberry Pi, using the beads platform for audio programming, and the HappyBrackets platform for inter-device communication and sensor data acquisition. We will demonstrate methods to allow each self-contained battery-powered device to acquire sensor data about its surroundings and the way it is being interacted with, as well as methods for designing systems where groups of these devices wirelessly communicate their state, allowing new interaction possibilities and approaches.
The Raspberry Pi is an ultra-cheap, ultra-small Linux microcomputer. Introduced in 2012, it is a flagship device lighting the path towards generally available ubiquitous computing technology. The creative potential of cheap, tiny network-connected general purpose linux computers that are the size of credit cards is immense. Similarly, Java is one of the world’s most popular general purpose programming language, and underlies the creative coding environment Processing, itself one of the most popular environments for creative coding. Java opens up a world of infinite possibilities, and the coding examples in this course have been designed to be incredibly easy to learn, allowing you to get stuck into your creative goals from the get-go.
In this course you will learn the essentials of programming real-time audio software and apply these skills to the exciting world of the Internet of Things. You will use the Raspberry Pi as a rapid prototyping platform, exploring the creative potential of real-time sensor and network interaction, combined with real-time sound generation, creating systems that respond to user input, communicate with other devices and play sound. Make your own musical instruments, develop devices for sonic artworks, and create new sound design concepts for sonifying everyday objects. Through this course you will develop a basic understanding of audio programming and the core concepts behind programming for the Internet of Things. You will be able to conceptualize and design your own innovative interactive devices.
*** Topics
This course will include the following topics.
Morning Session:
Introduction to Beads and IntelliJ
Continuous and Event-Based Control in Beads
Sampling and Synthesis,
Introduction to Audio on the Pi
Live Coding the Pi,
Network Communication with the Pi
Responding to Sensor Data
The afternoon session will be devoted to collaborative exercises and composition tasks.
*** Logistics
This workshop will be a full-day session framed as a pedagogical workshop which will introduce the platform in an interactive hands-on manner. Participants in this workshop will require a raspberry pi, sensor system, battery system and access to a wifi or wired network which we will provide. Some participants may wish to purchase these devices in advance of the workshop, so that they learn on equipment they can take with them, and for these participants we will provide a description of the equipment we use and suggestions for how to buy them and set them up in advance of the workshop. For participants who do not bring their own devices we will provide a device for the day.
*** Knowledge
Participants will benefit from having some experience in programming Java. No electronics knowledge will be necessary but familiarity with linux and/or raspberry pis would be advantageous but is not required. This course will not introduce Java from first principles, although the coding examples will start off being very simple and easy to pick up (someone with experience in another language would not be significantly challenged).
This workshop will also benefit from an online MOOC course we have recorded with Kadenze, available here. We will expect participants to have enough time to review the course materials and videos in advance of the workshop, but not to have completed the assignments. The workshop itself will focus on reviewing the material, running through and clarifying any unclear content, and then on completing collaborative composition asssignments in the second half of the workshop.
*** Contact for questions
*** Participation
Participating in this workshop will require registration for the ACM Conference on Creativity and Cognition 2017, alongside registration for the workshop. See here for details.
To help us to track who’s participating and to send updates to you, if you are planning on participating please fill in this google form. You don’t have to have registered to fill in this form, but you will need to eventually register to participate in the workshop: