Skip to content

Commit 74b7afb

Browse files
authored
Merge pull request #24 from juce-framework/jan/update-readme
Jan/update readme
2 parents fa76ab4 + cc6d277 commit 74b7afb

File tree

3 files changed

+200
-22
lines changed

3 files changed

+200
-22
lines changed

README.md

Lines changed: 76 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,88 @@
1-
# Tremolo
1+
<div align="center">
22

3-
![Cmake workflow success badge](https://github.com/JanWilczek/audio-plugin-template/actions/workflows/cmake.yml/badge.svg)
3+
# Tremolo Audio Plugin
44

5-
## Usage
5+
[![License](https://img.shields.io/badge/license-Unlicense-blue.svg)](LICENSE.md)
6+
![Build Status](https://github.com/juce-framework/tremolo-juce-course/actions/workflows/cmake.yml/badge.svg)
7+
![CMake](https://img.shields.io/badge/CMake-3.25+-064F8C.svg?logo=cmake)
8+
![C++](https://img.shields.io/badge/C++-20-00599C.svg?logo=cplusplus)
9+
![JUCE](https://img.shields.io/badge/JUCE-8.0.10-orange.svg)
10+
![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey.svg)
611

7-
This is a template repository which means you can click "Use this template" on GitHub and create your own repo out of it.
12+
<img alt="Tremolo user interface" src="docs/UI.png" width="512px">
813

9-
After cloning it locally, you can proceed with the usual CMake workflow.
14+
Tremolo audio plugin project used for the [Official JUCE Audio Plugin Development Course](https://www.wolfsoundacademy.com/juce) 🎓
1015

11-
In the main repo directory execute
16+
![JUCE audio plugin development course logo](docs/JUCE_Course_logo.svg)
1217

13-
```bash
14-
# 'default' preset uses Ninja; alternatives: 'release' | 'vs' | 'Xcode'
15-
# BUILD_TESTS flag will download googletest and allow unit test execution
16-
# WARNINGS_AS_ERRORS flag will disallow code compilation on possible mistakes
17-
cmake --preset default -DBUILD_TESTS=ON -DWARNINGS_AS_ERRORS=ON
18-
cmake --build --preset default
18+
</div>
1919

20-
# to run unit tests (BUILD_TESTS=ON)
21-
ctest --preset default
22-
```
20+
## ✨ Features
2321

24-
The first run will take the most time because the dependencies (CPM, JUCE, and optionally googletest) need to be downloaded.
22+
* Preconfigured plugin formats:
23+
* AU
24+
* VST3
25+
* Standalone
26+
* Tremolo audio effect: tremolo is amplitude modulation at a rate below the human hearing range. The result is a "pulsing" sound.
27+
* Parameters
28+
* modulation rate
29+
* LFO waveform
30+
* bypass
31+
* Real-time LFO visualization
32+
* Custom UI
33+
* State serialization
34+
* Template *README.txt* for distribution
35+
* Configured GitHub Actions CI pipeline
36+
* Unit tests using [googletest](https://github.com/google/googletest)
37+
* CMake presets, including "release"
38+
* Automatic dependency downloading using [CPM](https://github.com/cpm-cmake/CPM.cmake)
39+
* Helper *.clang-format*, *.clang-tidy*, and *.pre-commit-config.yaml* configuration files
2540

26-
Existing presets are `default`, `release`, `vs`, and `Xcode`.
41+
## 📋 Requirements
2742

28-
To run clang-format on every commit, in the main directory execute
43+
You need to have the following software installed your machine:
2944

30-
```bash
31-
pre-commit install
32-
```
45+
* Git version control system
46+
* CMake 3.25 or higher (the one bundled with CLion 2025.1.1 or higher should work)
47+
* C++ compiler and build system. Tested on:
48+
* macOS: Xcode 15.4 (Apple Clang 15.0.0.15000309), 16.4 (Apple Clang 17.0.0.17000013)
49+
* Windows: Visual Studio 2022 17.14.13 (MSVC 19.44.35215)
50+
* Ubuntu, Debian: gcc 12.2.0, 13.3.0 and make 4.3
3351

34-
(for this you may need to install `pre-commit` with `pip`: `pip install pre-commit`).
52+
## 🚀 Getting Started
53+
54+
**Detailed instructions on the setup process [are described in the course.](https://www.wolfsoundacademy.com/juce)**
55+
56+
1. Click “Use this template” on GitHub to create your own copy and begin your project.
57+
2. Clone **your repository** locally.
58+
3. Build the *complete/* plugin
59+
1. Open the *complete/* folder in CLion, or
60+
2. In the main repo directory execute
61+
62+
```bash
63+
cd complete
64+
cmake --preset default
65+
cmake --build --preset default
66+
```
67+
68+
The first build will take the most time because the dependencies (CPM and JUCE) need to be downloaded.
69+
70+
Build artifacts will be located at *complete/cmake-build/TremoloCoursePlugin_artefacts/Debug*.
71+
72+
## 📂 Structure
73+
74+
This repository is a template. Click “Use this template” on GitHub to create your own copy and begin your project.
75+
76+
The plugin project is present in two folders:
77+
78+
* *complete/* contains the completed tremolo plugin project. It compiles and runs out of the box.
79+
* *todo/* contains skeleton code of the same plugin. This is the code you will work on throughout the course to gradually bring it to the same state as the *complete/* folder. In its default state, it does not compile.
80+
81+
## 🤝 Contributing
82+
83+
* If you find a bug, please, open an issue and/or provide a pull request.
84+
* Feature requests won't be merged because the goal of the repository is to be educational not feature-full.
85+
86+
## 📜 License
87+
88+
We use the incredibly liberal ["Unlicense" license](LICENSE.md). You can basically do whatever you want with the code. Remember that the commercial use of products built with JUCE requires a JUCE license. Refer to the JUCE license for details.

docs/JUCE_Course_logo.svg

Lines changed: 124 additions & 0 deletions
Loading

docs/UI.png

143 KB
Loading

0 commit comments

Comments
 (0)