Brickworks released

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS
Brickworks

Post

Hi all,

We are glad to announce that we released version 0.3.0.

Here' s a short list of changes:
  • Added dynamics, degradation, filter, and mixing modules.
  • Added support for the Daisy Seed board.
  • Added a lot of new examples.
  • Added more fast math routines.
  • Bug fixes, improvements, and polish.
You can find more information on the official web page: https://www.orastron.com/brickworks.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post

mystran wrote: Thu Nov 17, 2022 3:36 pm [...]
Every heap object is a pointer chase is a cache miss, so ideally the whole DSP module is a single big alloc that contains everything as single continuous block of memory. You can't always do that with everything (eg. buffers you want to resize at runtime), but that should generally be the goal.
[...]
I think in some cases you must be very careful with the memory layout when doing so. If the memory is shared between multiple CPU cores then this might even lead to performance degrading effects like false sharing where the action of one core might lead to unnecessary cache reloads in the other cores.
Passed 303 posts. Next stop: 808.

Post

BlitBit wrote: Thu Feb 23, 2023 4:27 pm
mystran wrote: Thu Nov 17, 2022 3:36 pm [...]
Every heap object is a pointer chase is a cache miss, so ideally the whole DSP module is a single big alloc that contains everything as single continuous block of memory. You can't always do that with everything (eg. buffers you want to resize at runtime), but that should generally be the goal.
[...]
I think in some cases you must be very careful with the memory layout when doing so. If the memory is shared between multiple CPU cores then this might even lead to performance degrading effects like false sharing where the action of one core might lead to unnecessary cache reloads in the other cores.
Yes... but when you allocate everything together in bulk, you actually get to control this. :)

Post

mystran wrote: Thu Feb 23, 2023 4:32 pm Yes... but when you allocate everything together in bulk, you actually get to control this. :)
Exactly, it's just a matter of cleverly grouping shared variables on its own cache-lines. Padding might be required. The basic DSP bl9cks shouldn't have many of these though...

EDIT: the library is looking as something I'd want to use now.

Post

Hello again,

Brickworks 0.4.0 is out now!

Here's a short list of changes:
  • Modulation, delay (except reverb), and resampling modules.
  • Support for MIDI over UART on the Daisy Seed board.
  • More new examples.
  • Added more fast math and buffer utility routines.
  • Bug fixes, improvements, and polish.
You can find more information on the official web page: https://www.orastron.com/brickworks.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post

Hi all,

We just released Brickworks 0.5.0!

Here's a short list of changes:
  • Reverb, fuzz, overdrive, distortion, hard clipper, dry/wet mixer, note queue, and voice allocator modules.
  • Multichannel API.
  • C++ wrappers.
  • Polyphonic synth and more new examples.
  • Bug fixes, improvements, and polish.
Also, our friends at Elk integrated Brickworks in Sushi 1.1.0, and thus in Elk Audio OS 1.0.

You can find more information on the official web page: https://www.orastron.com/brickworks.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post

Hi all,

We just released Brickworks 0.6.0!

Here's a short list of changes:
  • Android and iOS support.
  • Debugging utilities and preliminary use in a subset of modules.
  • Bug fixes, improvements, and polish.
You can find more information on the official web page: https://www.orastron.com/brickworks.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post

Hi all again,

We finally got to release version 1.0.0 - the first stable one - which was about adding debugging code everywhere, bugfixing, finishing, and polishing to death.

This forum topic was referred in the THANKS.md file and indeed I want to thank you for giving early feedback which has indeed helped shape the library in a more useful way than initially planned.

We'll keep improving the library and we'll expand the offer as soon as possible with advanced modules with more functionality, virtual analog models, new original algorithm designs, etc., so if you're interested keep an eye on this project.

Also, we're really eager for feedback and we welcome all constructive criticism.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post

Hey,

We just got version 1.1.0 out now!

Here's a short list of changes:
  • Reworked all examples and added LV2 plugins, command line programs, and C++/WebAssembly targets.
  • Added new cab simulator module and related examples.
  • Added new functionalities to the envelope generator and bit depth reducer modules.
  • Made it possible to avoid C++ arrays, which improves portability and makes it easier to use C++ APIs in WebAssembly.
  • Tons of bug fixes, smaller improvements, and polish.
The official web page is always: https://www.orastron.com/brickworks.
Clack.DIGITAL: https://clack.digital/ - Orastron: https://www.orastron.com - dangelo.audio: https://dangelo.audio - Ciaramella: https://ciaramella.dev

Post Reply

Return to “DSP and Plugin Development”