# puredata class

This repo contains a short puredata class with some examples and a webserver.
Use pandoc to generate the index.html in the source directory.
The included webserver can be used to host the course on the LAN.

Dependencies:

* pandoc
* python3 bottle framework

It also includes a small OSC server that can be used to dispatch data to clients.
This server fetches JSON data from online sources and formats it to OSC bundles.
It currently dispatches:

* weather data
* bitcoin price data
* cpu and ram data

To run the server you need these python3 dependencies that can be installed with pip.

* python-osc
* psutil

The server **listens** on port **8080** and send OSC data back on port **8081** to the client who requested the data.
The following OSC messages can be sent to the server.

```python
/get/weather [CITY]
/get/bitcoin
/get/cpu
```

It's running as a systemd service with the following configuration at */etc/systemd/system/osc_server.service*.

```bash
[Unit]
Description=OSC server for puredata
After=network.target

[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi/sources/puredata/
ExecStart=/usr/bin/python3 osc_server.py
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target
```

Controlling the service is done with the following commands.

```bash
sudo systemctl start osc_server.service
sudo systemctl stop osc_server.service
sudo systemctl restart osc_server.service
sudo systemctl status osc_server.service

```

# todo

* restructure so that there is a intro section with video examples of nice patches
* more robust end patches
* Rename all screenshots and patches, for consistency between chapters' numbers and figures/patches names
* finish french translation (GEM)

# done

* have each chapter be more verbose
