The main idea behind b.blocks is the simplification of patch building and organization in the development of interactive multimedia systems in Max.
By creating a higher level structure, having pre-programmed, yet flexible, modules that address a number of commonly used functions, two main issues can be addressed:
– the difficulty and time and it takes to develop a patch can be greatly reduced when working with processes which are contemplated in b.blocks.
– the clutter of the patchcords and objects are greatly reduced, by eliminating the need of adding and connecting interface objects and messages for basic functions, which are already in the b.blocks graphic user interfaces.

Max addresses the use of multiple instantiation and encapsulated blocks of code with the use of externals, which are external patches programmed in C that show up in Max as normal object boxes, and abstractions, which are actual max patches, instantiated in other patches by the use of the patcher (p) object box, or the bpatcher object, which works like the patcher object, but creates a “window” that allows to see the subpatcher’s contents.

The b.blocks library are abstractions, meaning that each module is a max patcher, built with an interface designed to be instantiated inside bpatcher objects.