brickworks/examples
2023-09-03 20:22:52 +02:00
..
common finalize bw_one_pole + adjust example Makefiles + fix stupid bug in bw_dist 2023-08-29 10:49:08 +02:00
fx_ap1 finalize all 1st order filter modules and examples + bw_*_reset_state_multi() and init values + bw_gain get gain improv + use bw_gain_process1() in bw_dry_wet 2023-09-01 19:43:50 +02:00
fx_ap2 polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_balance polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_bitcrush polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_chorus polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_clip changed default gain compensation value in bw_{clip,satur} 2023-08-15 06:48:19 +02:00
fx_comb polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_comp polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_delay wip on many modules, all is broken, all is good 2023-08-20 15:49:04 +02:00
fx_dist polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_drive polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_eq_3band polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_flanger polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_fuzz polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_hp1 finalize bw_hp1 + examples + fix bw_slew_lim + ChangeLogs/cosmetics 2023-08-30 17:12:27 +02:00
fx_hs1 finalized bw_hs1 + examples 2023-08-31 10:47:20 +02:00
fx_lp1 finalized bw_lp1, examples + more debug for bw_slew_lim + cosmetic changes 2023-08-30 11:00:11 +02:00
fx_ls1 finalized bw_ls1 + examples + fix bw_hs1 changelog 2023-08-31 12:06:34 +02:00
fx_mm1 fix bw_gain + finalize bw_mm1 + examples 2023-08-31 07:23:26 +02:00
fx_mm2 polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_noise_gate polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_notch polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_one_pole finalize bw_one_pole + adjust example Makefiles + fix stupid bug in bw_dist 2023-08-29 10:49:08 +02:00
fx_pan polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_phaser polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_reverb polished bw_{delay,dist,drive,drywet} + removed 2023-08-12 18:45:19 +02:00
fx_satur changed default gain compensation value in bw_{clip,satur} 2023-08-15 06:48:19 +02:00
fx_slew_lim fix bw_one_pole + finalize and fix bw_slew_lim + update fx*slew_lim 2023-08-29 13:11:12 +02:00
fx_svf fix, finalize bw_svf + examples + more restrict + better debug 2023-09-03 20:22:52 +02:00
fx_trem polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_vibrato polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fx_wah polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fxpp_ap1 finalize all 1st order filter modules and examples + bw_*_reset_state_multi() and init values + bw_gain get gain improv + use bw_gain_process1() in bw_dry_wet 2023-09-01 19:43:50 +02:00
fxpp_ap2 polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
fxpp_balance polished + bw_{phaser,pink_filt,ppm} + removed bwpps + fixed examples 2023-08-13 06:57:50 +02:00
fxpp_bitcrush polished bw_{reverb,ringmod,satur,slew_lim,sr_reduce,trem} + removed 2023-08-13 11:18:45 +02:00
fxpp_chorus polished bw_{chorus,clip} + removed bwpp_{chorus,clip} + fixed doc typos 2023-08-12 17:38:55 +02:00
fxpp_clip changed default gain compensation value in bw_{clip,satur} 2023-08-15 06:48:19 +02:00
fxpp_comb polished bw_{comb,comp} + removed bwpp_{comb,comp} + fix examples 2023-08-12 18:00:12 +02:00
fxpp_comp polished bw_{comb,comp} + removed bwpp_{comb,comp} + fix examples 2023-08-12 18:00:12 +02:00
fxpp_delay polished bw_{delay,dist,drive,drywet} + removed 2023-08-12 18:45:19 +02:00
fxpp_dist polished bw_src{,_int} + removed bwpps + fixed examples 2023-08-13 11:42:06 +02:00
fxpp_drive polished bw_src{,_int} + removed bwpps + fixed examples 2023-08-13 11:42:06 +02:00
fxpp_eq_3band polished bw_{pan,peak,phase_gen} + removed corresponding bwpp + fixed 2023-08-13 06:36:35 +02:00
fxpp_flanger polished bw_{svf,wah} + removed bwpps + fixed examples 2023-08-13 11:55:25 +02:00
fxpp_fuzz polished bw_src{,_int} + removed bwpps + fixed examples 2023-08-13 11:42:06 +02:00
fxpp_hp1 finalize bw_hp1 + examples + fix bw_slew_lim + ChangeLogs/cosmetics 2023-08-30 17:12:27 +02:00
fxpp_hs1 finalized bw_hs1 + examples 2023-08-31 10:47:20 +02:00
fxpp_lp1 finalized bw_lp1, examples + more debug for bw_slew_lim + cosmetic changes 2023-08-30 11:00:11 +02:00
fxpp_ls1 finalized bw_ls1 + examples + fix bw_hs1 changelog 2023-08-31 12:06:34 +02:00
fxpp_mm1 fix bw_gain + finalize bw_mm1 + examples 2023-08-31 07:23:26 +02:00
fxpp_mm2 polished bw_{mm1,mm2,noise_gate,noise_gen,notch} + removed corresponding bwpp and bwpp_note_queue + fixed examples 2023-08-13 04:55:29 +02:00
fxpp_noise_gate polished bw_{mm1,mm2,noise_gate,noise_gen,notch} + removed corresponding bwpp and bwpp_note_queue + fixed examples 2023-08-13 04:55:29 +02:00
fxpp_notch polished bw_{mm1,mm2,noise_gate,noise_gen,notch} + removed corresponding bwpp and bwpp_note_queue + fixed examples 2023-08-13 04:55:29 +02:00
fxpp_one_pole finalize bw_one_pole + adjust example Makefiles + fix stupid bug in bw_dist 2023-08-29 10:49:08 +02:00
fxpp_pan polished + bw_{phaser,pink_filt,ppm} + removed bwpps + fixed examples 2023-08-13 06:57:50 +02:00
fxpp_phaser polished + bw_{phaser,pink_filt,ppm} + removed bwpps + fixed examples 2023-08-13 06:57:50 +02:00
fxpp_reverb polished bw_{reverb,ringmod,satur,slew_lim,sr_reduce,trem} + removed 2023-08-13 11:18:45 +02:00
fxpp_satur changed default gain compensation value in bw_{clip,satur} 2023-08-15 06:48:19 +02:00
fxpp_slew_lim fix bw_one_pole + finalize and fix bw_slew_lim + update fx*slew_lim 2023-08-29 13:11:12 +02:00
fxpp_svf fix, finalize bw_svf + examples + more restrict + better debug 2023-09-03 20:22:52 +02:00
fxpp_trem polished bw_{reverb,ringmod,satur,slew_lim,sr_reduce,trem} + removed 2023-08-13 11:18:45 +02:00
fxpp_vibrato polished bw_{svf,wah} + removed bwpps + fixed examples 2023-08-13 11:55:25 +02:00
fxpp_wah polished bw_{svf,wah} + removed bwpps + fixed examples 2023-08-13 11:55:25 +02:00
synth_mono polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
synth_poly polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
synth_simple polished bw_{ap1,ap2,one_pole} + removed bwpp_{ap1,ap2} + fixed examples 2023-08-12 16:51:19 +02:00
synthpp_mono polished bw_{svf,wah} + removed bwpps + fixed examples 2023-08-13 11:55:25 +02:00
synthpp_poly ensure buffers are not NULL in bw_buf + remove useless array of nullptr 2023-08-14 12:51:53 +02:00
synthpp_simple polished bw_{svf,wah} + removed bwpps + fixed examples 2023-08-13 11:55:25 +02:00
README.md better ios instructions 2023-08-07 13:26:04 +02:00

Examples

Each subfolder contains an example application, except the common folder, which contains common code for all examples.

In order to build an example just cd to *example*/*platofrm* and use the following platform-specific instructions.

Building for any platform requires a recent enough version of GNU Make installed.

VST3

Prerequisites

Windows (via MSYS2/Mingw-w64), macOS, and Linux OSes are supported. Building tested with GCC, probably also works with Clang.

You also need to download the VST3 SDK and place it in the same folder as the Brickworks folder, or otherwise edit common/vst3/vst3.mk and change the VST3_SDK_DIR variable to point to the correct directory.

Build

In order to build just type make. You'll find the resulting VST3 directory in build/example.vst3.

Installation

If all went fine, you can install for the current user (i.e., into the user VST3 folder) by invoking make install-user.

On macOS and Linux you can also install for all users (i.e., into the system VST3 folder) by make install.

Web

Prerequisites

You need Clang with WebAssembly target support and OpenSSL installed.

Build

In order to build just type make. You'll find the resulting output directory in build/web.

Running

The output files need to be served over HTTPS. A self-signed certificate is generated in the output directory (hence the OpenSSL requirement) to make it possible to run an HTTPS-enabled web server, e.g. http-server -S, directly on/from the output folder.

Daisy Seed

Prerequisites

Building and firmware upload was only tested on Linux. You need arm-none-eabi-gcc (for building) and dfu-util (for firmware upload) installed.

You also need to clone libDaisy, cd to it, and run make. You should either place it in the same folder as the Brickworks folder, or otherwise edit common/daisy-seed/daisy-seed.mk and change the LIBDAISY_DIR variable to point to the correct directory.

Build

In order to build just type make. You'll find the resulting output files in build.

Firmware upload

To upload the firmware:

  1. branch the board to the uploading machine via USB;
  2. put the board in DFU mode by pressing BOOT, then RESET, then letting go of RESET and then of BOOT;
  3. type make program-dfu.

Effect examples report output parameter values and CPU usage statistics via USB serial. You can read the output by, e.g., screen /dev/ttyACM0.

Android

Prerequisites

Android examples are built without the help of Android Studio or Gradle. You'll however need to have a recent enough JDK (we need javac and keytool), as well as to download the latest stable:

Then you'll probably also need to adjust paths in common/android/android.mk.

* You can install both the needed parts of the Android SDK and the NDK by downloading the so-called "command line tools" (https://developer.android.com/studio#command-line-tools-only) and using the included sdkmanager program. In such case you need to install the following packages: "platforms;android-latest", "build-tools;latest", "platform-tools", and "ndk;latest".

Build

In order to build just type make. You'll find the resulting .apk file in build.

Installation

If all went fine, you can branch your device and install using make install.

Otherwise, you can also install manually, but please remember to first uninstall the application from the device (adb install -r is not sufficient as the signature might have changed while building).

Usage and known issues

Effect examples process audio input signals, therefore they will require permission to use the capture device.

Synth examples use input MIDI. While they are coded to support hotplugging, this doesn't seem to work as expected on the devices we tested. You'll need to press "STOP" and then "START" again after plugging a new device.

iOS

Prerequisites

iOS examples are not directly built by the supplied Makefiles. These rather generate the corresponding XCode projects and required files.

For this to work you need to have the latest Xcode and XcodeGen installed, as well as a copy of the latest miniaudio.h.

Finally, you might need to adjust header search path for miniaudio in build/common/ios/project.yml.

Build

Typing make will generate the required Xcode project in build/gen.

You'll need to open it and select a development team (click on the project root in the left side pane, then choose the "Signing & Capabilities" tab, and finally pick a "Team").

At this point you can build and run as with any other iOS app.

Usage

Effect examples process audio input signals, therefore they will require permission to use the capture device.

Synth examples use input MIDI and support hotplugging.

Thanks

Thanks to: