# bf-pd : a PureData external for building Digital Orchestras
## Description
## Introduction: What is bf-pd and why do you need it?
bf-pd is an implementation for PureData of the BOEUF framework, which enables advanced collaboration modes in spontaneous digital orchestras.
Digital instruments allow us to do things that were not possible with purely acoustic instruments. For example musicians can share data between instruments in real-time, in effect creating distributed multi-musician super-instruments. Musicians such as The Hub have been doing this since at least the 1970s. Contemporary digital musicians often write their own software instruments to re-create these functionalities.
Help and tutorials can be found in the [documentation folder.](doc/README.md)
Bf-pd is a library built in PureData (Pd) which enables communication and cooperation between digital instruments. Bf-pd can be integrated into any instrument built in Pd. It provides a *collaboration window* from which musicians can view each others’ activity and share control of instrument parameters and other musical data.
## Requires the following puredata libraries (Help->Find Externals)
The design of bf-pd is based on the BOEUF conceptual framework which consists of a classification of modes of collaboration used in collective music performance, and a set of components which affords them. More details on the BOEUF conceptual framework can be found
[on this page](boeuf.md).
* mrpeach
## Installing bf-pd
- Download and install Pure Data for your operating system from https://puredata.info/downloads/pure-data
- Install the **mrpeach** library using Deken (PD -> Help -> Find Externals)
- Install **bf-pd** using Deken
## Getting started: Building your instrument

- Create a declare object with -path bf-pd
- Create a bf-instrument object with your instrument name as argument
- Connect the sound output of your instrument to its inlet
- Create a bf-param object for each control you want to share with the others and insert it into your instrument
- Create a bf-session object with the name of the session you want to connect to
## Performance: Making music together using bf-pd
### The collaboration window
### Sharing parameters
### Connecting parameters using ask and watch
### Video example
<ahref="https://vimeo.com/214380530">Video showing a simple session</a>
## More resources
Documentation for each of the user objects in bf-pd can be found in [objects.md](doc/objects.md).
The *BOEUF conceptual framework* describes the *modes of collaboration* used in musical collaboration and describes a set of *components* for realizing these modes in a software framework. Bf-pd is based on this framework. More info can be found in [boeuf.md](doc/boeuf.md).