<aside>
💡 Key Concept
This week you will learn about the JUCE library to build a GUI application.
Learning Objectives
- Build a deejaying application
- Able to explain what a library, a framework, a toolkit, an API and a GUI library are
- Find out about the JUCE framework and how we can use that to generate an application
</aside>
Some new concepts are introduced:
- Library: A library is a collection of precompiled routines that a program can use. The routines, sometimes called modules, are stored in object format. Libraries are particularly useful for storing frequently used routines because you do not need to explicitly link them to every program that uses them. The linker automatically adds them when it creates the executable file.
- Framework: A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products, and solutions. Unlike libraries, which are used as individual components in application development, a framework defines the architecture of your application and provides a structure in which your application is built and runs. For example, Django is a framework for building web applications in Python.
- Toolkit: A toolkit can be seen as a bundle of libraries and utilities geared towards a specific type of tasks or solving a specific type of problems. It can contain all sorts of things like libraries, APIs, IDEs (Integrated Development Environments), GUI (Graphical User Interface) builders, etc. The main aim of a toolkit is to make it easier for a developer to create applications within its specific scope. A popular example is the Java Development Kit (JDK) for Java programming.
- API (Application Programming Interface): An API is a set of rules and protocols for building and interacting with software applications. An API specifies how software components should interact and can include specifications for routines, data structures, object classes, and more. It is basically a way for different software programs to interact with each other. For instance, if you want to develop a software that integrates with Facebook, you would use the Facebook API.
- GUI (Graphical User Interface): a type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation, instead of text-based user interfaces, typed command labels, or text navigation.
Setup Development Environment
Install IDE
- For Mac user: install Xcode: https://developer.apple.com/xcode/
- For Windows user: Install Visual Studio Community 2022 (NOT Visual Studio Code)
- Select “Desktop development with C++” and hit Install

Install JUCE
- Install JUCE: https://juce.com/get-juce/
- Set correct Global Paths
- For Mac user: in the menu bar Projucer > Global Paths
- For Windows user: in the menu bar File > Global Paths
- Update the Path to JUCE to the JUCE folder just downloaded
- Update the JUCE Modules to JUCE/modules
- Update the User Modules to where your JUCE folder is located



Download Audio files
You can download the audio files from Coursera week 14 7.503
