Running Puredata patches on Bela » History » Version 2

Christian Heinrichs, 2015-12-05 03:58 PM

1 1 Christian Heinrichs
h1.  Compiling Puredata patches on Bela
2 1 Christian Heinrichs
3 1 Christian Heinrichs
Here's a quick guide to compiling Pd patches on Bela. Currently this only works on OSX and Linux, but Windows support will be coming soon.
4 1 Christian Heinrichs
5 2 Christian Heinrichs
You can also access the slides from the latest Bela workshop on compiling Pd patches at the following link: https://goo.gl/59hShW This also includes some handy tips for handling Bela's sensor inputs using Puredata.
6 1 Christian Heinrichs
7 1 Christian Heinrichs
h2.  Getting everything up and running
8 1 Christian Heinrichs
9 1 Christian Heinrichs
Follow the following steps to get everything up and running on your Beaglebone Black:
10 1 Christian Heinrichs
11 1 Christian Heinrichs
*1. Download the project archive from https://code.soundsoftware.ac.uk/attachments/download/1723/bela_4-12-2015.zip*
12 1 Christian Heinrichs
13 1 Christian Heinrichs
* Extract the archive (and remember where you extracted it to)
14 1 Christian Heinrichs
15 1 Christian Heinrichs
*2. Make sure python is installed:*
16 1 Christian Heinrichs
17 1 Christian Heinrichs
* Type `which python` in a terminal window. If not installed, follow instructions here: https://wiki.python.org/moin/BeginnersGuide/Download
18 1 Christian Heinrichs
19 1 Christian Heinrichs
* Install the most up-to-date version of the *requests* python package (version 2.7.0). You can get it from http://docs.python-requests.org/en/latest/user/install/
20 1 Christian Heinrichs
     or typing the following in a terminal window (make sure it is not currently installed):
21 1 Christian Heinrichs
22 1 Christian Heinrichs
@curl -OL https://github.com/kennethreitz/requests/zipball/master && unzip master && cd kenneth* && sudo python setup.py install@
23 1 Christian Heinrichs
 
24 1 Christian Heinrichs
*3. Create an account on enzienaudio.com:*
25 1 Christian Heinrichs
26 1 Christian Heinrichs
* Go to http://www.enzienaudio.com
27 1 Christian Heinrichs
28 1 Christian Heinrichs
* Click *Login* on the top right corner of the page
29 1 Christian Heinrichs
30 1 Christian Heinrichs
* Create a new account
31 1 Christian Heinrichs
32 1 Christian Heinrichs
* Create a new patch and call it **bbb** _(N.B. compiling won't work if you use a different name)_
33 1 Christian Heinrichs
34 1 Christian Heinrichs
(steps 4-6 are deprecated - check the slides instead)
35 1 Christian Heinrichs
36 1 Christian Heinrichs
37 1 Christian Heinrichs
38 1 Christian Heinrichs
 *4. Make sure the Beaglebone is plugged in to laptop and open a terminal window:*
39 1 Christian Heinrichs
40 1 Christian Heinrichs
* Navigate to the _scripts_ folder @cd /path/to/folder/scripts@
41 1 Christian Heinrichs
42 1 Christian Heinrichs
* If running for the first time @sh setup_board.sh@
43 1 Christian Heinrichs
44 1 Christian Heinrichs
* if prompted for a password enter letter 'a' (no quotation marks)
45 1 Christian Heinrichs
46 1 Christian Heinrichs
*5. Compile your first project!*
47 1 Christian Heinrichs
48 1 Christian Heinrichs
* @./build_pd.sh -i ../projects/heavy/pd/hello-world/@
49 1 Christian Heinrichs
50 1 Christian Heinrichs
*6. Create a new pd project*
51 1 Christian Heinrichs
52 1 Christian Heinrichs
* Create a new folder inside the /pd directory
53 1 Christian Heinrichs
54 1 Christian Heinrichs
* The pd patch must exist in its own folder and be named *_main.pd*. You can use abstractions if you like.
55 1 Christian Heinrichs
56 1 Christian Heinrichs
57 1 Christian Heinrichs
h3.  Using analog ins/outs
58 1 Christian Heinrichs
59 1 Christian Heinrichs
* You can directly address the analog ins and outs from within PD (note that you have to compile and run the patch onto the BeagleBone to receive the data)
60 1 Christian Heinrichs
61 1 Christian Heinrichs
* Use the [adc~] and [dac~] objects to receive and send the data
62 1 Christian Heinrichs
63 1 Christian Heinrichs
* [adc~ 3] refers to Analog Input 0 (first two channels of [adc~] are audio inputs), likewise for [dac~]
64 1 Christian Heinrichs
65 1 Christian Heinrichs
* These inputs are sampled at audio sampling rate, so handle them as you would audio signals. (Use [snapshot~] if you want to turn them into control-rate values)
66 1 Christian Heinrichs
67 1 Christian Heinrichs
* See the example patches in the /pd folder for more information
68 1 Christian Heinrichs
69 1 Christian Heinrichs
70 1 Christian Heinrichs
h2.  Important notes
71 1 Christian Heinrichs
72 1 Christian Heinrichs
* Make sure you aren't using any unsupported objects. For list of objects go to https://enzienaudio.com/docs/pdobjects.html
73 1 Christian Heinrichs
74 1 Christian Heinrichs
* Pd patch must exist in its own folder and be named *_main.pd*. You can use abstractions if you like.
75 1 Christian Heinrichs
76 1 Christian Heinrichs
* See example pd patches for more information.
77 1 Christian Heinrichs
78 1 Christian Heinrichs
79 1 Christian Heinrichs
*Have fun!*