Open for Enrollment

Started almost 5 years ago

Join Now

Would you like to enroll?

Enrollment for this course has closed. But you can enroll in a future offering (please select)

Enrollment has closed

10 Sessions / 15 hours of work per session
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
English, Spanish; Castilian, Chinese, Portuguese
Raspberry Pi, Java, Audio Programming, Internet of Things, Interaction Design
Open for Enrollment

Creative Audio Programming on the Raspberry Pi

Started almost 5 years ago

Would you like to enroll?

Enrollment for this course has closed. But you can enroll in a future offering (please select)

Enrollment has closed

10 Sessions / 15 hours of work per session
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
English, Spanish; Castilian, Chinese, Portuguese
Raspberry Pi, Java, Audio Programming, Internet of Things, Interaction Design
Course Description

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.


This course is in scheduled mode and is open for enrollment. Learn more about scheduled courses here.

Session 1: 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.
6 lessons
1. Course Introduction and the Main Tools
2. Multiplicitous Media: What's Happening in the Field?
3. Getting Set Up for the Course
4. First Steps Programming in IntelliJ
5. Starting From Scratch and Where to Get Help (Premium Exclusive)
6. Looking at the Raspberry Pi
Session 2: 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.
7 lessons
1. Beginning to Code Audio: Oscillators, Envelopes and the IntelliJ Environment
2. More Envelopes, Triggers and Killing Sounds
3. The Bead Class, Signal Chains and Clocks
4. Summary of Signal Chains and Events, Generating Pitches (Premium Exclusive)
5. Pitches and Frequencies
6. Tempos and Time Intervals
7. Audio Effects: Delays and Filters (Premium Exclusive)
Session 3: 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.
10 lessons
1. Playing Samples
2. Granular Sample Playback
3. Modulating Sounds and Custom Functions
4. Frequency Modulation
5. Ring Modulation
6. Sequencing with Samples and Effect
7. Understanding UGens and the Signal Chain (Premium Exclusive)
8. Recording Audio
9. Understanding IntelliJ and Java (Premium Exclusive)
10. Get Ready for the Pi (Premium Exclusive)
Session 4: 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.
7 lessons
1. Introduction to the Hardware
2. Getting the Raspberry Pi Set Up
3. Setting up the Raspberry Pi with a Wifi Network
4. Accessing the Device Through SSH (Premium Exclusive)
5. Testing Out Command Line Skills
6. Sending Test Sounds From IntelliJ (Premium Exclusive)
7. Conclusion
Session 5: 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.
7 lessons
1. Introduction
2. Sending a Basic Program to the Pi
3. A Closer Look at HBActions, Playing Sounds
4. Playing Patterns
5. Sending Status Messages
6. Running HappyBrackets from the Commandline (Premium Exclusive)
7. Summary (Premium Exclusive)
Session 6: 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.
7 lessons
1. Getting Started with Creative Programming on the Pi
2. Continuing with Live Coding
3. Controlling and Synchronizing Action on Multiple Pis
4. Dynamically Controlling Patterns
5. Putting Your Own Samples on the Pi (Premium Exclusive)
6. Autorunning a Composition on the Pi (Premium Exclusive)
7. Summary
Session 7: 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.
6 lessons
1. Network Basics
2. Using OSC
3. Sending Messages from the Controller
4. Using Arguments and Tricks with Strings (Premium Exclusive)
5. Synching and Controlling when Events Happen
6. Summary
Session 8: 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.
6 lessons
1. Introduction to Sensors
2. Mapping Data to Sound (Premium Exclusive)
3. Accessing Sensor Data and Mapping to Tones
4. Using Sensor Data to Play Samples
5. Smoothing or Differencing Sensor Data (Premium Exclusive)
6. Summing Up
Session 9: 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.
5 lessons
1. Introduction to Creative Design Processes
2. Iterative Design (Premium Exclusive)
3. Dynamic Creation of Signal Chains
4. The Observer Design Pattern
5. Data Structures and DSP Efficiency (Premium Exclusive)
Session 10: 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.
1 lessons
1. Creative Assignment
Show off your Certificate of Accomplishment

Verify Your Achievements
Whenever you complete a course as a premium member, you can earn a verified Certificate of Accomplishment. These certificates are proof that you completed an online course on our platform.

Easily Shareable
Using its unique link, you can share your certificate with everyone from future employers and schools, to friends, family, and colleagues. It's the perfect tool to help you land that new job or promotion, apply to college, or simply share your achievements with the world.

Learning Outcomes

Below you will find an overview of the Learning Outcomes you will achieve as you complete this course.

Instructors And Guests
What You Need to Take This Course

Required for Session 1-10

Required for Session 4-10

  • A Raspberry Pi version 2 or 3. The version 3 is the version you will receive currently (Jan 2017) and has wifi builtin. If you are using an older version 2 device you will also need to provide a wifi dongle. You can also use either version with ethernet cables instead of wifi.
  • A micro SD with at least 8GB. Your Raspberry Pi needs a micro-SD to contain its operating system. Most Raspberry Pis sold these days will come with an SD card containing 'NOOBS', but if you haven't got one you'll need to obtain one.
  • A WiFi router (normal domestic home WiFi router is fine). You'll probably need a wifi router that you can control.
  • An ethernet cable may be required to connect your Pi to your WiFi router when you first set up your Pi.
  • An audio output device. A powered speaker, headphones, stereo with appropriate mini jack input cable, or other means of listening to your Pi minijack audio output. You can use a fixed device (such as a stereo), but when you are using sensors you may wish to use a portable device, so you can explore the sensor's motion sensing capabilities.
  • A Raspberry Pi SenseHat sensor This is required for sensor input to the raspberry pi. Other sensors can be used, but at this stage there is limited support. The Sensehat sensor provides acceleration, rotation, compass, humidity, temperature, and pressure.

Note: You can extend to two or more Raspberry Pis easily.

Additional Information

Please note: Taking part in a Kadenze course as a Premium Member, does not affirm that the student has been enrolled or accepted for enrollment by UNSW.

Peer Assessment Code of Conduct: Part of what makes Kadenze a great place to learn is our community of students. While you are completing your Peer Assessments, we ask that you help us maintain the quality of our community. Please:

  • Be Polite. Show your fellow students courtesy. No one wants to feel attacked - ever. For this reason, insults, condescension, or abuse will not be tolerated.
  • Show Respect. Kadenze is a global community. Our students are from many different cultures and backgrounds. Please be patient, kind, and open-minded when discussing topics such as race, religion, gender, sexual orientation, or other potentially controversial subjects.
  • Post Appropriate Content. We believe that expression is a human right and we would never censor our students. With that in mind, please be sensitive of what you post in a Peer Assessment. Only post content where and when it is appropriate to do so.

Please understand that posts which violate this Code of Conduct harm our community and may be deleted or made invisible to other students by course moderators. Students who repeatedly break these rules may be removed from the course and/or may lose access to Kadenze.

Students with Disabilities: Students who have documented disabilities and who want to request accommodations should refer to the student help article via the Kadenze support center. Kadenze is committed to making sure that our site is accessible to everyone. Configure your accessibility settings in your Kadenze Account Settings.