brickworks/examples
2023-06-30 19:44:02 +02:00
..
common new bwpp_svf, fxpp_svf + free mem, stronger, cleaner vst3 and web wrappers 2023-06-19 15:26:21 +02:00
fx_ap1 added x0 to reset_state in bw_{lp1,ap1,hp1,hs1,ls1,mm1}, adjusted bw_phaser and examples 2023-04-19 08:33:18 +02:00
fx_ap2 added initial value to bw_{ap2,hs2,ls2,mm2,notch,peak,svf,wah} 2023-03-23 14:03:27 +01:00
fx_balance bwpp_pan + fxpp_pan + use process_multi in fx_balance, fx_pan 2023-06-27 15:55:37 +02:00
fx_bitcrush fixed unused parameter warnings 2023-04-02 21:54:17 +02:00
fx_chorus updated mem_req/set in bw_{delay,comb,chorus,reverb} and fxs + more reverb work 2023-06-02 10:50:42 +02:00
fx_clip new bw_clip and fx_clip 2023-04-26 01:48:01 +02:00
fx_comb updated mem_req/set in bw_{delay,comb,chorus,reverb} and fxs + more reverb work 2023-06-02 10:50:42 +02:00
fx_comp added missing daisy seed examples 2023-02-16 14:38:12 +01:00
fx_delay updated mem_req/set in bw_{delay,comb,chorus,reverb} and fxs + more reverb work 2023-06-02 10:50:42 +02:00
fx_dist beginning of bw_dist and fx_dist + fix bw_peak doc and bw_fuzz init 2023-04-26 03:21:20 +02:00
fx_drive fixed bw_drive, new example fx_drive 2023-05-10 11:16:38 +02:00
fx_eq_3band added initial value to bw_{ap2,hs2,ls2,mm2,notch,peak,svf,wah} 2023-03-23 14:03:27 +01:00
fx_flanger updated mem_req/set in bw_{delay,comb,chorus,reverb} and fxs + more reverb work 2023-06-02 10:50:42 +02:00
fx_fuzz hello bw_fuzz and fx_fuzz 2023-04-25 12:01:54 +02:00
fx_hp1 added x0 to reset_state in bw_{lp1,ap1,hp1,hs1,ls1,mm1}, adjusted bw_phaser and examples 2023-04-19 08:33:18 +02:00
fx_hs1 added x0 to reset_state in bw_{lp1,ap1,hp1,hs1,ls1,mm1}, adjusted bw_phaser and examples 2023-04-19 08:33:18 +02:00
fx_lp1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fx_ls1 added x0 to reset_state in bw_{lp1,ap1,hp1,hs1,ls1,mm1}, adjusted bw_phaser and examples 2023-04-19 08:33:18 +02:00
fx_mm1 added x0 to reset_state in bw_{lp1,ap1,hp1,hs1,ls1,mm1}, adjusted bw_phaser and examples 2023-04-19 08:33:18 +02:00
fx_mm2 added initial value to bw_{ap2,hs2,ls2,mm2,notch,peak,svf,wah} 2023-03-23 14:03:27 +01:00
fx_noise_gate some daisy seed fx examples + fixes (in examples) 2023-02-07 11:01:04 +01:00
fx_notch added initial value to bw_{ap2,hs2,ls2,mm2,notch,peak,svf,wah} 2023-03-23 14:03:27 +01:00
fx_one_pole fix bwpp_slew_lim. unused param warn in bw_slew_lim + fx(pp)_{one_pole,slew_lim} 2023-06-21 17:57:05 +02:00
fx_pan bwpp_pan + fxpp_pan + use process_multi in fx_balance, fx_pan 2023-06-27 15:55:37 +02:00
fx_phaser bw_trem fix doc + rename param + new bw_/fx_phaser tentative 2023-02-27 12:30:40 +01:00
fx_reverb fx_reverb done 2023-06-02 14:13:29 +02:00
fx_satur fix bw_src_int + use it in fx_satur 2023-03-14 16:46:13 +01:00
fx_slew_lim fix bwpp_slew_lim. unused param warn in bw_slew_lim + fx(pp)_{one_pole,slew_lim} 2023-06-21 17:57:05 +02:00
fx_svf a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fx_trem bw_trem fix doc + rename param + new bw_/fx_phaser tentative 2023-02-27 12:30:40 +01:00
fx_vibrato fix fx_vibrato 2023-06-14 12:19:40 +02:00
fx_wah some daisy seed fx examples + fixes (in examples) 2023-02-07 11:01:04 +01:00
fxpp_ap1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_ap2 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_balance bwpp_{ppm,balance} + fxpp_balance 2023-06-22 16:29:06 +02:00
fxpp_bitcrush bwpp_{bd_reduce,src_reduce,clip,src_int} + fxpp_{bitcrush,clip} 2023-06-25 10:58:47 +02:00
fxpp_clip bwpp_{dist,drive,fuzz} + fxpp_{dist,drive,fuzz} 2023-06-25 16:40:30 +02:00
fxpp_comp bwpp_comp + fxpp_comp 2023-06-25 11:38:01 +02:00
fxpp_dist bwpp_{dist,drive,fuzz} + fxpp_{dist,drive,fuzz} 2023-06-25 16:40:30 +02:00
fxpp_drive bwpp_{dist,drive,fuzz} + fxpp_{dist,drive,fuzz} 2023-06-25 16:40:30 +02:00
fxpp_eq_3band welcome bwpp_peak and fxpp_eq_3band 2023-06-19 18:40:00 +02:00
fxpp_fuzz bwpp_{dist,drive,fuzz} + fxpp_{dist,drive,fuzz} 2023-06-25 16:40:30 +02:00
fxpp_hp1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_hs1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_lp1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_ls1 a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_mm1 new bwpp_{mm1,mm2,slew_lim}, fxpp_{mm1,mm2} 2023-06-21 17:02:32 +02:00
fxpp_mm2 new bwpp_{mm1,mm2,slew_lim}, fxpp_{mm1,mm2} 2023-06-21 17:02:32 +02:00
fxpp_noise_gate bwpp_{satur,noise_gate,noise_gen} + fxpp_{satur,noise_gate} 2023-06-26 11:19:08 +02:00
fxpp_notch new bwpp_{notch,wah} + examples 2023-06-20 15:12:45 +02:00
fxpp_one_pole fix bwpp_slew_lim. unused param warn in bw_slew_lim + fx(pp)_{one_pole,slew_lim} 2023-06-21 17:57:05 +02:00
fxpp_pan bwpp_pan + fxpp_pan + use process_multi in fx_balance, fx_pan 2023-06-27 15:55:37 +02:00
fxpp_phaser bwpp_{phaser,trem} + fxpp_{phaser,trem} 2023-06-26 11:52:35 +02:00
fxpp_satur bwpp_{satur,noise_gate,noise_gen} + fxpp_{satur,noise_gate} 2023-06-26 11:19:08 +02:00
fxpp_slew_lim fix bwpp_slew_lim. unused param warn in bw_slew_lim + fx(pp)_{one_pole,slew_lim} 2023-06-21 17:57:05 +02:00
fxpp_svf a bunch of c++ wrappers and fxpp examples + new fx_lp1 2023-06-19 17:41:52 +02:00
fxpp_trem bwpp_{phaser,trem} + fxpp_{phaser,trem} 2023-06-26 11:52:35 +02:00
fxpp_wah new bwpp_{notch,wah} + examples 2023-06-20 15:12:45 +02:00
synth_mono synthpp_mono + fix bwpp_{noise_gen,osc_tri,pink_filt} and synth* 2023-06-28 10:48:08 +02:00
synth_poly synthpp_mono + fix bwpp_{noise_gen,osc_tri,pink_filt} and synth* 2023-06-28 10:48:08 +02:00
synth_simple synthpp_mono + fix bwpp_{noise_gen,osc_tri,pink_filt} and synth* 2023-06-28 10:48:08 +02:00
synthpp_mono synthpp_mono + fix bwpp_{noise_gen,osc_tri,pink_filt} and synth* 2023-06-28 10:48:08 +02:00
synthpp_poly bwpp_note_queue + synthpp_poly + inline all C++ methods 2023-06-30 19:44:02 +02:00
synthpp_simple synthpp_mono + fix bwpp_{noise_gen,osc_tri,pink_filt} and synth* 2023-06-28 10:48:08 +02:00
README.md fix typo 2023-02-20 18:12:17 +01: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.

Thanks

Thanks to Mads Kjeldgaard for publishing instructions to build for the Daisy Seed and uploading the firmware.