Undergraduate Course: Audio Programming (MUSI10108)
Course Outline
School | Edinburgh College of Art |
College | College of Arts, Humanities and Social Sciences |
Credit level (Normal year taken) | SCQF Level 10 (Year 3 Undergraduate) |
Availability | Available to all students |
SCQF Credits | 20 |
ECTS Credits | 10 |
Summary | This course provides an introduction to programming creative audio applications. The focus is on developing competencies in professional level tools and practices. You will learn to code in C++ within the JUCE environment, a helpful framework for producing standalone audio applications for different devices and operating systems, and for producing VST plugins, audio units and related technologies. |
Course description |
In this course you will explore professional-level audio software development as a creative process. A founding premise for the course is that creating musical software is a creative musical act. There is a strong technical core to the course as you will be learning to program in C++. This necessitates a focus on some of the fundamental aspects of computer programming. You will then use the JUCE environment, an open source framework for creating audio applications in C++, to bring your creative ideas into practice.
The course begins with the basics of coding in C++: creating variables, using arrays, and compiling code. You will progress to making simple sounds in the JUCE framework, looking at the DSP loop for generating sounds sample-by-sample. You will then move on to using the Maximilian library to bring standard audio building blocks such as oscillators, filters, envelopes and sample players, into play. This will allow you to build up more intricate sonic applications. Finally, you will design and build basic interface elements, creating sliders, dials and other controls to provide an interface to your application.
Despite the clear and deliberate technical emphasis throughout the course, a central aim is to demystify the act of programming, and to bring sound practitioners behind the curtain, so to speak, showing what is behind the technologies that enable real-time music creation. C++ and JUCE are industry standards, and provide an important technical skill set for artists, composers and acousticians to explore.
Class sessions take the form of weekly 2 hour lectures and weekly 1 hour small group tutorials.
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | None |
Information for Visiting Students
Pre-requisites | None |
High Demand Course? |
Yes |
Course Delivery Information
Not being delivered |
Learning Outcomes
On completion of this course, the student will be able to:
- Write well formulated C++ code according to industry standard practice
- Construct a range of digital signal processing algorithms in C++/JUCE, appropriate to the task of real-time audio processing
- Design and implement an audio application using C++/JUCE that explores a specific objective
- Identify, assess, and resolve problems throughout the design and implementation phases of audio application development
|
Learning Resources
BOOKS
- Horton, I. (2020). Beginning C++, From Beginner to Pro, Springer.
- Boulanger, R. and Lazzarini, V. (2011) The Audio Programming Book, MIT Press
- Pirkle, W. (2013), Designing Audio Effect Plug-Ins in C++. Focal Press.
LEARNING RESOURCES
General online C++ learning resources:
- http://www.learn-c.org/
- http://www.cplusplus.com
More specialised C++ Audio DSP learning resources
- The JUCE Audio Programmer tutorial series: https://www.youtube.com/playlist?list=PLLgJJsrdwhPxa6-02-CeHW8ocwSwl2jnu
- JUCE tutorials: https://juce.com/learn/tutorials |
Additional Information
Graduate Attributes and Skills |
The University has identified several groups of abilities that should be developed as part of the University of Edinburgh training experience, and to enhance your employability as a graduate. These abilities take your skill-base beyond academic knowledge. They relate to this course in a number of specific ways, as outlined below.
Enquiry and lifelong learning
All components of the course provide this to some degree but your lectures, in particular, provide an important framework upon which you can build these attributes. This University considers itself to be a research-led institution and you will be exposed to cutting edge information. In this course, you will be shown how to develop your own programming skills, and more importantly, the ability to develop your skills by yourself during the course and beyond the course, so that you can continue to explore and develop creative avenues through coding practices.
Aspiration and personal development
The course should provide you with the tools to begin to explore your own creative projects through programming. Although we can only go so far with this course, the course can be a window into a new world, that you can explore. The foundations of professional level programming can open up the possibility of a wide range of avenues and lead to many more ambitious projects.
Research and enquiry
The practical skills you learn on this course are enhanced by encouraging further reading of books, online resources, research papers, and tutorials. The practical project will allow you to research and explore your chosen topic for yourself, and to find your way among the many resources available on the topic.
Personal and intellectual autonomy
By reading and engaging with materials for the various submissions, you will learn to develop your own coding skills, and the ability to solve your own problems, and to seek help when necessary from a variety of sources.
Personal effectiveness
The ability to organise and summarise your thoughts and material in a flexible and accessible way is a core feature required for personal effectiveness. Planning, time management and reflection are central to this. By providing you with a timetable where key submission dates are highlighted, we encourage you to develop your effectiveness throughout this course. These same skills extend to other courses and also to your overall ability to maximise your achievement while studying at this University.
Communication
It is important that you develop skills to interact constructively with others and convey knowledgeable and balanced views. In the practical classes you will be encouraged to share ideas and insights with other students, to seek help and provide help where necessary. You will also be encouraged to engage with online forums: asking for help in a clear, legible and friendly manner, and posting help yourself if possible. |
Keywords | Audio,Programming,Music,coding,c++,sound,technology |
Contacts
Course organiser | Dr Tom Mudd
Tel: (0131 6)50 2808
Email: |
Course secretary | Dr Ellen Jeffrey
Tel: (0131 6)50 2430
Email: |
|
|