Creative Audio Programming on the Raspberry Pi
Offered By: University of New South Wales via Kadenze
Course Description
Overview
In this course you will learn the essentials of programming real-time audio software, applying these skills to making your own audio devices, and more generally 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 sensor 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.
Syllabus
- Sampling, Synthesis and Sequencing
- This session introduces additional audio programming concepts in Beads for recording and playing back samples, creating synthesis algorithms, and sequencing musical patterns. By the end of this session, students will be able to create audio programs using more complex synths, samplers and sequencing algorithms.
- Introduction to the Course, Beads and IntelliJ
- Welcome! This session introduces the course and the main tools we will be using in the course: the Java programming language, the IntelliJ development environment, and the Beads library for realtime audio. By the end of this session students will have their development environments set up and be able to run a basic audio program from their computer.
- Network Communication with the Pi
- In this session we introduce network communication, which we can use to communicate in realtime with the Pi from our controller computer, and also between Pis. By the end of this session, students will be able to set up network communication behaviours and remote control their Pis from a computer.
- Continuous and Event-Based Control in Beads
- This session introduces some core concepts in Beads that allow you make and control sounds, either in continuous ways or as events, such as WavePlayers, Envelopes, Gains and other effects. By the end of this session students will be able to create simple realtime audio programs.
- Introduction to the Raspberry Pi
- In this session, we introduce the Raspberry Pi and cover some of the basics of operating the Pi. By the end of this session, students will have their Pi set up on their wireless network, will be able to log into their pi and configure it, and will be able to send Beads compositions to the Pi.
- Creating Sonic Apps on the Pi
- In this session, we bring what we have learnt in sessions 1-3 about audio programming and apply it to writing programs for the Pi. By the end of this session, students will be able to write and deploy Beads audio programs to their Pi.
- Dynamic Coding on the Pi
- This session introduces more advanced programming techniques, and discusses how you dynamically develop programs on the Pi as you go, using our live deployment tools, and also store programs on the Pi to run in the future. By the end of this session, students will be able to better employ their creativity to compose realtime audio compositions on the Pi.
- Responding to Sensors
- This session introduces sensors, which we can connect to the Pi in order to gather information from the environment, and from user input. We introduce basic principles of sensors, how to set them up and how to program them. By the end of this session, students will be able to write audio programs that respond to sensor input.
- Creative Audio Design Patterns
- As we approach the end of the course, we look more broadly at how you may want to put together realtime audio programs. We discuss different design strategies and design patterns. This session will give students a more solid theoretical grounding in how to go about creating their masterpieces.
- Creative Assignment
- In this final session, we look in more detail at one of our own creative projects working with the Pi, and present the creative assignment that will finish off this course.
Taught by
Ollie Bown and Sam Ferguson
Tags
Related Courses
Understanding Computer SystemsRaspberry Pi Foundation via FutureLearn A Developer's guide to Node-RED
IBM via Coursera Device-based Models with TensorFlow Lite
DeepLearning.AI via Coursera IoT Certification Training on Azure
Edureka Introduction to Device Programming
Microsoft via edX