pbc/README.md

75 lines
2.4 KiB
Markdown

# pbc
pedal board control
## description
control your MODEP pedalboard(s) via http requests
## api
### info
| url | GET | POST |
| - | - | - |
| /info | get information about the host | |
### banks
| url | GET | POST |
| - | - | - |
| /banks | get available banks | |
| /banks/`id` | get bank by `id` | |
### pedalboards
| url | GET | POST |
| - | - | - |
| /pedalboards | list available pedalboards | |
| /pedalboards/default | get default pedalboard | |
| /pedalboards/current | get current pedalboard | |
| /pedalboards/`id` | get pedalboard by `id` | switch to pedalboard by `id` |
### pedals
| url | GET | POST |
| - | - | - |
| /pedals | get the current pedalboard's pedals | |
| /pedals/`id` | get the current pedalboard's pedal by `id` | set values of current pedalboard's pedal by `id` |
**note:**
POST arguments **must** contain the parameters `id` and `value` where `id` is the id of one of the pedal's controls.
**example - turn bypass on/off:**
`curl localhost:3000/pedals/1`
```
{"id":1,"name":"ZamComp","controls":[{"id":0,"name":"att","value":"10.000000"},{"id":1,"name":"rel","value":"80.000000"},{"id":2,"name":"kn","value":"0.000000"},{"id":3,"name":"rat","value":"4.000000"},{"id":4,"name":"thr","value":"0.000000"},{"id":5,"name":"mak","value":"0.000000"},{"id":6,"name":"slew","value":"1.000000"},{"id":7,"name":"sidech","value":"0.000000"},{"id":8,"name":":bypass","value":1,"midi":{"channel":0,"controller":0}}]}
```
in this case the pedal's bypass is turned on and has the id "8"; now let's turn if off:
`curl -X POST -d "id=8" -d "value=127" localhost:3000/pedals/1`
**only pedal controls with midi bindings can be controlled!**
### bypass
| url | GET | POST |
| - | - | - |
| /bypass | | toggle full bypass (switch to default pedalboard / back to last used pedalboard) |
| /bypass/`id` | | toggle bypass of a pedal by `id` |
### midi
| url | GET | POST |
| - | - | - |
| /midi | | send a midi message via `oscsend` defined by the POST arguments to the osc host |
**note:**
POST arguments **must** contain the parameters `controller`, `channel` and `value`.
### save
| url | GET | POST |
| - | - | - |
| /save | | save current pedalboard (optionally with new `title`) |
**note:**
POST arguments **can** contain the parameter `title`.
### cache
| url | GET | POST |
| - | - | - |
| /cache/clear | | clear all cached items |
| /cache/refresh | | clear and refresh all cache items |